package com.alibaba.springbootrbac.model.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * @author ZhouYaDong
 * @date 2025/8/21
 * @description 权限实体类
 */

@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("permissions")
public class Permission {

    // 主键，雪花算法
    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    // 权限标识，如 TASK_CREATE
    private String name;

    // 权限描述
    private String description;

    // 所属模块英文编码，如 USER_MANAGEMENT
    private String module;

    // 所属模块中文描述，如 用户管理
    private String moduleDesc;

    // 乐观锁字段
    @Version
    private Long version;

    // 逻辑删除：0=未删除，1=已删除
    @TableLogic
    private Integer deleted;

    // 创建时间（插入时填充）
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    // 更新时间（插入和更新时填充）
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
